Ansible এর file মডিউল ব্যবহার করে আপনি ফাইল এবং ডিরেক্টরি তৈরি, মুছা, পারমিশন সেট করা এবং লিঙ্ক তৈরি করার মতো কাজ করতে পারেন। এই মডিউলটি অত্যন্ত ফ্লেক্সিবল এবং এটি বিভিন্ন ফাইল বা ডিরেক্টরি সম্পর্কিত কাজ সম্পাদনের জন্য ব্যবহৃত হয়।
file মডিউলের মূল ব্যবহার
file মডিউলটি সাধারণত নিচের কাজগুলো করার জন্য ব্যবহৃত হয়:
- ফাইল বা ডিরেক্টরি তৈরি করা।
- ফাইল বা ডিরেক্টরি মুছে ফেলা।
- পারমিশন, মালিকানা, এবং গ্রুপ সেট করা।
- সিম্বলিক বা হার্ড লিঙ্ক তৈরি করা।
file মডিউলের সাধারণ সিনট্যাক্স
- name: File or directory management
ansible.builtin.file:
path: /path/to/file_or_directory
state: touch / directory / absent / link / hard
owner: username
group: groupname
mode: permissions
উদাহরণ: ফাইল এবং ডিরেক্টরি তৈরি করা
১. ফাইল তৈরি করা
---
- name: Create an empty file
hosts: localhost
tasks:
- name: Create a file named example.txt
ansible.builtin.file:
path: /tmp/example.txt
state: touch
owner: ubuntu
group: ubuntu
mode: '0644'
ব্যাখ্যা:
- path: ফাইলটির পূর্ণ পাথ উল্লেখ করা হয়েছে (এক্ষেত্রে
/tmp/example.txt)। - state: touch: এটি একটি খালি ফাইল তৈরি করবে। যদি ফাইলটি আগে থেকে থাকে, তাহলে এটি কিছু করবে না।
- owner এবং group: ফাইলের মালিক এবং গ্রুপ নির্ধারণ করা হয়েছে।
- mode: ফাইলের পারমিশন সেট করা হয়েছে (এক্ষেত্রে
'0644')।
২. ডিরেক্টরি তৈরি করা
---
- name: Create a directory
hosts: localhost
tasks:
- name: Create a directory named /tmp/mydirectory
ansible.builtin.file:
path: /tmp/mydirectory
state: directory
owner: ubuntu
group: ubuntu
mode: '0755'
ব্যাখ্যা:
- state: directory: এটি একটি ডিরেক্টরি তৈরি করবে। যদি ডিরেক্টরিটি আগে থেকে থাকে, তাহলে এটি কিছু করবে না।
- মালিকানা এবং পারমিশনও এখানে নির্ধারণ করা হয়েছে।
৩. ফাইল বা ডিরেক্টরি মুছে ফেলা
---
- name: Remove a file or directory
hosts: localhost
tasks:
- name: Remove example.txt file
ansible.builtin.file:
path: /tmp/example.txt
state: absent
- name: Remove /tmp/mydirectory directory
ansible.builtin.file:
path: /tmp/mydirectory
state: absent
ব্যাখ্যা:
- state: absent: এটি ফাইল বা ডিরেক্টরি মুছে ফেলবে। যদি ফাইল বা ডিরেক্টরি আগে থেকে না থাকে, তাহলে এটি কিছু করবে না।
৪. সিম্বলিক লিঙ্ক তৈরি করা
---
- name: Create a symbolic link
hosts: localhost
tasks:
- name: Create a symlink from /tmp/symlink.txt to /tmp/example.txt
ansible.builtin.file:
src: /tmp/example.txt
path: /tmp/symlink.txt
state: link
ব্যাখ্যা:
- src: লিঙ্কের উৎস ফাইল বা ডিরেক্টরি।
- path: যেখানে লিঙ্কটি তৈরি করা হবে।
- state: link: এটি একটি সিম্বলিক লিঙ্ক তৈরি করবে।
৫. ফাইল বা ডিরেক্টরির মালিকানা এবং পারমিশন পরিবর্তন করা
---
- name: Change ownership and permissions
hosts: localhost
tasks:
- name: Change ownership and permissions of /tmp/example.txt
ansible.builtin.file:
path: /tmp/example.txt
owner: ubuntu
group: ubuntu
mode: '0644'
ব্যাখ্যা:
- owner এবং group: ফাইল বা ডিরেক্টরির মালিক এবং গ্রুপ পরিবর্তন করবে।
- mode: পারমিশন সেট করবে।
file মডিউলের বিভিন্ন স্টেট অপশন
| স্টেট | বর্ণনা |
|---|---|
touch | একটি খালি ফাইল তৈরি করবে বা ফাইলের টাইমস্ট্যাম্প আপডেট করবে। |
directory | একটি নতুন ডিরেক্টরি তৈরি করবে। |
absent | ফাইল বা ডিরেক্টরি মুছে ফেলবে। |
link | একটি সিম্বলিক লিঙ্ক তৈরি করবে। |
hard | একটি হার্ড লিঙ্ক তৈরি করবে। |
সংক্ষেপে
Ansible এর file মডিউলটি ফাইল এবং ডিরেক্টরি ম্যানেজমেন্টের জন্য একটি শক্তিশালী এবং ফ্লেক্সিবল উপায় প্রদান করে। এর মাধ্যমে আপনি ফাইল এবং ডিরেক্টরি তৈরি, মুছা, পারমিশন ও মালিকানা সেট করতে পারেন। এটি আপনার প্লেবুককে আরও কার্যকর এবং কাস্টমাইজড করে তুলতে সাহায্য করে।